grep -Pzo '(?s)begin.*end'                         # (?s) on ohje regex:älle siitä että . vastaa myös rivinsiirtoa.

grep -Pzo '(?s)(?<=begin).*(?=.*end)               # tagien paikoilla on tyhjä rivi
echo 'user:$29y:exampl' | grep -Po '(?<=:).*(?=:)' # tagit saavat ola samojakin

sed -n '/begin/,/end+/ { p }'                      # kirjoita lohkojen väliin tyhjä rivi. Siis esimerkiksi: cat /boot/grub/grub.cfg | sed -n '/BEGIN/,/END+/ { p }'
cat /boot/grub/grub.cfg | awk '/BEGIN|begin|<</,/END|end|>>/ {print $0}/END|end|>>/{print "\n"}' # | merkki on TAI. Lohkojen väliin tulostetaan tyhjärivi.   
- myös regex:t sopii: lspci -v | awk '/VGA/,/^$/'  # lohkon alku on VGA ja loppu tyhjä rivi
- tiedostoissa on joskus epäkelpoja merkkejä. Tällöin esimerkiksi:
cat /boot/grub/grub.cfg | tr -dc [[:graph:]]+'\n' | grep -Pzoi '(?sU)begin.*end' | sed "s/BEGIN/******* lohkon raja *******\nBEGIN/g"

awk -v RS='' '/teksti/ {print $0"\n"}' tiedosto    # tulosta lohkot joissa on jossain paikassa teksti. Lohkojen täytyy olla tyhjien rivien rajoittamia.

sed "s/tag1/\n\ntag1/g;s/tag2/\n\ntag2/g" tiedosto | awk -v RS='' '/tag1/ {print $0"\n"}' | sed -e 's/tag1//g' 
